package br.com.sisclinicamedica.dados.implpostgre;


import hibernate.util.HibernateUtil;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import br.com.sisclinicamedica.dados.IRepositorioUnidadeatendimento;
import br.com.sisclinicamedica.negocio.basica.Unidadeatendimento;


public class RepositorioUnidadeatendimento implements IRepositorioUnidadeatendimento {

	private static RepositorioUnidadeatendimento instancia;  
	
	private RepositorioUnidadeatendimento(){
		
	}
	
	public static RepositorioUnidadeatendimento getInstancia(){
		if(instancia == null){
			instancia = new RepositorioUnidadeatendimento();
		}
		return instancia;
	}
	
	@Override
	public void incluir(Unidadeatendimento u) {
		HibernateUtil.getSession().save(u);
		
	}

	@Override
	public void alterar(Unidadeatendimento u) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void excluir(int codUnid) {
		HibernateUtil.getSession().delete(codUnid);
		
	}

	@Override
	public Unidadeatendimento consultarPorChavePrimaria(int codUnid) {
		return (Unidadeatendimento)HibernateUtil.getSession().get(Unidadeatendimento.class, codUnid) ;
	}

	@Override
	public List<Unidadeatendimento> listar() {
		
		return HibernateUtil.getSession().createCriteria(Unidadeatendimento.class).list();
	}

	@Override
	public List<Unidadeatendimento> consultarPorNome(String nome) {
		Criteria criteria = HibernateUtil.getSession().createCriteria(Unidadeatendimento.class);
		criteria.add(Restrictions.eq("nome",nome));		
		return criteria.list();
	}
	
	
}
